package com.hoapital.outpbillwork.billWorkHandler;

import com.hoapital.outpbillwork.module.controller.vo.ApplyInfo;
import com.hoapital.outpbillwork.module.entity.OutpMedrec;
import com.hospital.api.RemoteBillService;
import com.hospital.common.core.exception.ExceptionHelp;

import com.hospital.common.core.module.controller.vo.CancelOrder;
import com.hoapital.outpbillwork.module.controller.vo.OrderInfo;
import com.hospital.common.core.module.controller.vo.Receive;
import com.hoapital.outpbillwork.module.entity.ClinicMaster;
import com.hospital.common.core.result.Tip;

import javax.servlet.http.HttpServletRequest;

public interface BillWorkHandler {
    Tip billWork(Receive receive, HttpServletRequest request) throws ExceptionHelp;

    Tip orderWork(OrderInfo receive, HttpServletRequest request, RemoteBillService remoteBillService) throws ExceptionHelp;

    Tip outpRegistWork(OrderInfo receive, HttpServletRequest request) throws ExceptionHelp;

    Tip outpVisitWork(OrderInfo receive, HttpServletRequest request) throws ExceptionHelp;

    Tip newOrderWork(OrderInfo receive, ClinicMaster clinicMaster, OutpMedrec outpMedrec, ApplyInfo applyInfo, HttpServletRequest request, RemoteBillService remoteBillService) throws ExceptionHelp;

    Tip orderCancel(CancelOrder CancelOrder, HttpServletRequest request) throws ExceptionHelp;

    Tip sendApplyHl7File(OrderInfo orderInfo, String oneKey, String hl7Status) throws ExceptionHelp;

    Tip sendBillHl7Msg(String hosCode, String hosName, String oneKey, String type, String hl7Status) throws ExceptionHelp;

    Tip billInpWork(Receive requestVal, HttpServletRequest request);
}
